package com.ruoyi.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Random;
import java.util.concurrent.TimeUnit;

@RestController()
@RequestMapping("/sms")
public class SmsVerificationController {
    @Autowired
    private StringRedisTemplate redisTemplate;

    // 生成并发送短信验证码
    @GetMapping("/send")
    public String sendSmsCaptcha(@RequestParam String phone) {
        // 生成 4 位随机数字验证码
        Random random = new Random();
        String captcha = String.valueOf(1000 + random.nextInt(9000));

        // 将验证码存储到 Redis，设置过期时间为 5 分钟
        redisTemplate.opsForValue().set("sms:captcha:" + phone, captcha, 5, TimeUnit.MINUTES);

        // 在这里调用短信服务发送验证码（假设发送成功）
        boolean isSent = sendSms(phone, captcha);

        if (isSent) {
            return "短信验证码发送成功！";
        } else {
            return "短信验证码发送失败！";
        }
    }
    // 模拟发送短信（这里你可以调用外部短信服务提供商的 API）
    private boolean sendSms(String phone, String captcha) {
        // 实际应用中你应该调用第三方短信平台 API 来发送短信
        System.out.println("发送短信到 " + phone + "，验证码：" + captcha);
        return true;
    }
}
